package main;

import java.io.FileReader;
import java.io.IOException;

import core.exceptions.LexicalException;

import codigoGerado.LexicalAnalyzer;
import codigoGerado.parser;

public class Compilador {
	public static void executaAnalisadorLexico(String exemplo) throws IOException {
		LexicalAnalyzer scanner = new LexicalAnalyzer(new FileReader(exemplo));
		try {
			while (!scanner.next_token().toString().equals("#0")) {
				System.out.println(scanner.yystate() + " " + scanner.yytext());
			}
		} catch (LexicalException e) {
			e.printStackTrace();
		}
	}
	
	public static void executaAnalisadorSintatico(String exemplo) throws Exception {
		System.out.println("Iniciando analisador Lexico!");
		LexicalAnalyzer scanner = new LexicalAnalyzer(new FileReader(exemplo));
		System.out.println("Analise Lexica: DONE!");
		System.out.println("Iniciando analisador Sintatico!");
		parser p = new parser(scanner);
		p.parse();
		System.out.println("Analise Sintatica: DONE!");
		System.out.println("Analise bem sucedida, nenhum erro foi encontrado!");
	}
}